ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ AT&T PC6300 SUPPORT BBS - Bulletin Service ³ ³ ³ ³ SUBJECT: GW-BASIC Notes for the PC6300 ³ ³ PROVIDED BY: AT&T PC-Hotline ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ DIFFERENCES BETWEEN IBM BASIC VERSION 1.1 AND GW-BASIC ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ 1) IBM COMPATABILITY PACKAGE MODIFICATIONS ³ ³ ³ ³ 1.1) RESERVED WORDS AND TOKENS ³ ³ The reserved words and tokens were incompatable, ³ ³ making exchange of binary and protected program ³ ³ files impossible. GW-Basic token values have been ³ ³ modified by this modification package. ³ ³ ³ ³ 1.2) LINE PRINTER AND KEYBOARD OPEN MODE ³ ³ IBM Basic allows these devices to be open without ³ ³ a mode specification. GW-Basic would interpret ³ ³ these cases as open for random and declare a mode ³ ³ error. ³ ³ ³ ³ 1.3) RS232 SUPPORT ³ ³ The /C switch on the IBM Basic command line allows ³ ³ the user to specify the sieze of communications ³ ³ buffers. This feature has been added to all ³ ³ versions of Basic. ³ ³ ³ ³ 1.4) CLEAR Processing ³ ³ CLEAR should turn off music, reset music to ³ ³ foreground, turn off PEN and STRIG, and reset DRAW ³ ³ scale color. Similar processing should happen for ³ ³ LOAD, RUN, CHAIN, CLEAR, and NEW. This processing ³ ³ has been added for all GW-Basic versions. ³ ³ ³ ³ 1.5) BSAVE and BLOAD ³ ³ IBM Basic appends the .BAS suffix to file names ³ ³ when the user does not supply a suffix. GW-Basic ³ ³ did not append a suffix. ³ ³ ³ ³ 1.6) CENTER OF GRAPHICS SCREEN ³ ³ IBM Basic calculates the center by dividing the ³ ³ one relative screen dimensions by two. GW-Basic ³ ³ calculates the center by dividing the zero ³ ³ relative screen dimensions by two. The IBM Basic ³ ³ method of calculating the center of the screen is ³ ³ now used by GW-Basic. ³ ³ ³ ³ 1.7) COMMON STATEMENT ³ ³ IBM Basic allows the user to define new variables ³ ³ using the COMMON statement. GW-Basic declared an ³ ³ error if a COMMON statement referred to a ³ ³ previously undefined variable. ³ ³ ³ ³ 1.8) LIST STATEMENT ³ ³ During PRINT and LIST processing, IBM Basic clears ³ ³ characters from the end of the print item to the ³ ³ end of line. All versions of BASIC now function in ³ ³ this manner. ³ ³ ³ ³ 1.9) CURSOR DESIGN ³ ³ A) The GW-Basic cursor is on only during character ³ ³ input requests from the keyboard. ³ ³ B) The IBM Basic displays different cursors for ³ ³ the Screen Editor overstrike mode and insert ³ ³ mode. ³ ³ The GW-Basic cursor is now turned off when ³ ³ printing characters to the screen. The cursor is ³ ³ turned to the user cursor when the PRINT ³ ³ statement terminates. When input is requested, ³ ³ the cursor is turned to the insert mode cursor ³ ³ or the overwrite mode cursor, depending on the ³ ³ Screen Editor mode. ³ ³ ³ ³ 1.10) INKEY$, INPUT$, INPUT ³ ³ A) INKEY$ did not return the same key codes as ³ ³ IBM Basic ³ ³ B) INPUT$ did not return the same key codes as ³ ³ IBM Basic. It should be noted that IBM Basic ³ ³ key codes returned to INKEY$ are not the same ³ ³ as IBM Basic keycodes returned to INPUT$ for ³ ³ all keys. ³ ³ C) Device input from "KYBD:" read no break (no ³ ³ interrupt takes place) if using the INPUT ³ ³ statement. An interrupt took place if ³ ³ INPUT$(N,kybd:) IS SPECIFIED. ³ ³ GW-Basic now provides the OEM with filters for ³ ³ mapping characters on input. These filters ³ ³ provide the capability of returning IBM Basic ³ ³ keycodes. ³ ³ ³ ³ 1.11) CHR$ ³ ³ Certain IBM character codes in the range ³ ³ [&H00,&H1f] have been assigned fonts and are ³ ³ printable. Other codes in this range have been ³ ³ assigned functions (such as carriage return). ³ ³ GW-Basic now provides filters which allow OEM to ³ ³ decide which codes in this range are printable ³ ³ and which specify control functions. ³ ³ ³ ³ 1.12) SCREEN function ³ ³ SCREEN function requests for the character at the ³ ³ current cursor position may return a zero in ³ ³ place of &H20 (space) for IBM if there are no ³ ³ non-space characters to the right of the ³ ³ specified cursor position. GW-Basic can now ³ ³ support this character code for the screen ³ ³ function. ³ ³ ³ ³ 1.13) POKE/PEEK ³ ³ Results of the POKE and PEEK statements were ³ ³ different. The GW-Basic machine interface now ³ ³ includes routines to filter PEEK and POKE ³ ³ instructions. The OEM may now modify the PEEK or ³ ³ POKE address and data value. Certain GW-Basic ³ ³ routines have been provided for use in these ³ ³ filters. GW-Basic provides the capability to ³ ³ support the function of all PEEK and POKE ³ ³ locations specified by IBM user documentation. ³ ³ ³ ³ 1.14) INITIALIZATION DIFFERENCES ³ ³ A) HEADING: GW-Basic displays the heading when a ³ ³ program is specified on the command line, ³ ³ while IBM Basic does not print a heading or ³ ³ display function keys in this case. The ³ ³ GW-Basic machine interface now contains a ³ ³ parameter that specifies to GW-Basic whether to ³ ³ print the heading and function keys when a ³ ³ program is specified on the command line. ³ ³ B) FUNCTION KEY DISPLAY: GW-Basic did not give the ³ ³ option of displaying the function keys when ³ ³ BASIC initializes, when there is no program on ³ ³ the command line. A configuration switch now ³ ³ specifies the function key display switch ³ ³ position on BASIC initialization. ³ ³ ³ ³ 1.15) ERROR CODES ³ ³ Some of the error codes and messages were ³ ³ different. GW-Basic error codes and messages have ³ ³ been modified to conform to IBM Basic. ³ ³ ³ ³ ³ ³ 1.16) MUSIC AND SOUND ³ ³ A) PLAY octave default not the same. ³ ³ B) BEEP duration not the same ³ ³ C) SOUND STATEMENT: ³ ³ 1)SOUND freq,0 causes the IBM Basic to be ³ ³ flushed ³ ³ 2)GW-Basic does not perform range checking on ³ ³ frequency. ³ ³ 3)SOUND statement foreground mode was not ³ ³ interruptable by CTL-C or BREAK. This is a ³ ³ problem because it is possible to create ³ ³ extremely long notes. ³ ³ These conditions are considered bugs and have ³ ³ been fixed for all versions. Foreground SOUND ³ ³ interruptability is available through a GW-Basic ³ ³ keyboard routine provided to the OEM for use ³ ³ within the speaker control support. ³ ³ ³ ³ 1.17) COLOR statement syntax ³ ³ The IBM COLOR statement syntax was not ³ ³ supportable by the GW-Basic OEM interface. This ³ ³ problem has been fixed in GW-Basic. ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ 2) DIFFERENCES WHICH WILL NOT BE RESOLVED ³ ³ ³ ³ 2.1) SCREEN EDITOR DIFFERENCES ³ ³ (THESE DIFFERENCES MAY NOT EXIST IN SOME VERSIONS ³ ³ OF GW-BASIC BECAUSE OF THE FLEXIBILITY OF THE OEM ³ ³ INTERFACE FOR MAPPING AND OMITTING FEATURES) ³ ³ ³ ³ A) Input sequences that wrap to a subsequent ³ ³ physical line cause a scroll to open another ³ ³ physical line. IBM Basic allows the user to ³ ³ type over the text which is on the subsequent ³ ³ line. The IBM Basic end of logical line is then ³ ³ moved to the end of the logical line which is ³ ³ being overwritten. ³ ³ B) Skip-to-next-word function. When the cursor is ³ ³ positioned on a space the IBM skip-to-next-word ³ ³ control function will skip spaces until a word ³ ³ is found, progress over the word and proceed to ³ ³ the word following. The GW-Basic skip-to-next- ³ ³ word control function will skip spaces until a ³ ³ word is found. ³ ³ C) TAB. In GW-Basic, after stopping at the last ³ ³ position on a line, TAB will proceed to the ³ ³ next line. IBM Basic TAB only operates on one ³ ³ line. ³ ³ D) Cursor movement control functions do not join ³ ³ physical lines into logical lines. In IBM Basic ³ ³ cursor movement can join lines. ³ ³ E) Line delete. The GW-Basic Screen Editor uses a ³ ³ character other than ESC for line delete. ³ ³ F) GW-Basic extends logical lines to new physical ³ ³ lines (when required by LF or wrapping at the ³ ³ end of the screen). A new blank line is inserted ³ ³ following the current line. When physical lines ³ ³ following the first physical line in a logical ³ ³ line are deleted, the line is removed from the ³ ³ screen. In IBM Basic, lines are not inserted or ³ ³ removed. ³ ³ G) AUTO. The IBM AUTO statement allows the user to ³ ³ modify the statement corresponding to the line ³ ³ number printed by AUTO only. If the user uses ³ ³ the Screen Editor to move to another line, or ³ ³ otherwise attempts to modify the line number, ³ ³ strange results are obtained. The GW-Basic AUTO ³ ³ statement allows the user to modify any line by ³ ³ making use of the Screen Editor to modify the ³ ³ line number or to move to another line on the ³ ³ screen. ³ ³ H) Functions added to Screen Editor ³ ³ 1) HELP. This control function allows the ³ ³ programmer to edit the last statement where ³ ³ an error ocurred, or if no error ocurred, ³ ³ the last direct statement. ³ ³ 2) DELETE WORD. This control function deletes ³ ³ the current word starting at the current ³ ³ cursor position, and ending at the character ³ ³ previous to the next word ³ ³ 3) CLEAR TO END OF SCREEN. This control ³ ³ function clears all data from the current ³ ³ cursor position to the end of the screen. ³ ³ ³ ³ 2.2) Breaking from INPUT ³ ³ IBM Basic allows the user to break from an INPUT ³ ³ statement using either Control-C or BREAK. GW-Basic ³ ³ provides only one BREAK function code. This ³ ³ function code may be assigned to either BREAK, ³ ³ Control-C, or both by the OEM. However, no special ³ ³ processing is performed to differentiate between ³ ³ the INPUT statement and other statements. ³ ³ ³ ³ 2.3) Sequences returned by the GW-Basic RANDOM NUMBER ³ ³ GENERATOR (RND function) will NOT be identical to ³ ³ sequences returned by the IBM Basic random number ³ ³ generator. ³ ³ ³ ³ 2.4) /F and /S Options ³ ³ IBM Basic statically allocates file space using ³ ³ the /F and /S BASIC command line switches. GW-Basic ³ ³ allocates space dynamically and is not limited by ³ ³ these switches. GW-Basic will not declare an error ³ ³ if the user specifies either of these switches. ³ ³ ³ ³ 2.5) File Format of BASIC ³ ³ IBM Basic is in ".COM" file format. GW-Basic is in ³ ³ ".EXE" file format. ³ ³ ³ ³ 2.6) Fielded Strings ³ ³ IBM Basic fielded strings retain their values ³ ³ after the file is closed. In GW-Basic this space is ³ ³ deallocated. Any field statement which is executed ³ ³ while a file is opened, has no effect after that ³ ³ file is closed. For example, assume file 1 is ³ ³ opened, fielded, and closed. If file 1 is ³ ³ reopened, it should be refielded. ³ ³ ³ ³ 2.7) VARPTR ³ ³ In IBM Basic, the value returned by VARPTR for a ³ ³ given file number is not subject to change during ³ ³ program execution. In GW-Basic, FBD's are moved in ³ ³ memory when files are opened and closed. To avoid ³ ³ problems due to this difference, the statement ³ ³ "X=VARPTR(file)" should be executed before every ³ ³ referrence to X because a file buffer may be moved ³ ³ in memory when another file is closed. ³ ³ ³ ³ 2.8) Line Printer Filenames ³ ³ Line printer filenames have the following syntax: ³ ³ "LPTn:[bin]" ³ ³ Where if bin is included, the file is opened in ³ ³ Binary mode. In this mode, tabs are not expanded ³ ³ to spaces, and CR is not forced at end-of-line. ³ ³ ³ ³ 2.9) DATE$ ³ ³ Both IBM Basic and GW-Basic allow a single digit ³ ³ for year. IBM Basic interprets the digit 8 as ³ ³ 1980. GW-Basic interprets the digit 8 as 2008. ³ ³ ³ ³ 2.10) Pen and Joy Stick ³ ³ The statement 'STRIG ON' and 'STRIG OFF' perform ³ ³ no function in GW-Basic. In IBM Basic these ³ ³ functions are used to enable and disable the joy ³ ³ stick trigger interrupts. ³ ³ ³ ³ 2.11) Parity Checking on the OPEN statement ³ ³ There is an undocumented PE on the IBM OPEN ³ ³ statement. This OPEN option enables/disables ³ ³ parity checking on input. With no PE specified, ³ ³ the IBM OPEN for communications will report no ³ ³ parity errors. ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ 3) IBM BASIC PROBLEMS FIXED IN GW-BASIC ³ ³ ³ ³ 3.1) Homing The Graphics and Text Cursor ³ ³ IBM Basic does not home the cursor after CLS in ³ ³ version A1.0. GW-Basic allows the OEM to choose ³ ³ when to home the graphics cursor. The text cursor ³ ³ is always returned home as per IBM PC Basic ³ ³ version A1.1. ³ ³ ³ ³ 3.2) NAME statement On Open Files ³ ³ IBM Basic allows the NAME statement to refer to an ³ ³ open file. This causes no immediate problem, but ³ ³ can lead to problems as in the following case: ³ ³ 10 OPEN"0",#1,"JUNK" ³ ³ 20 NAME"JUNK" AS "JUNK2" ³ ³ 30 KILL"JUNK2" ³ ³ 40 PRINT#1,"My data" ³ ³ 50 CLOSE ³ ³ IBM Basic allows this program to execute. Data ³ ³ printed to the file is lost. This is inconsistent ³ ³ in that KILL is illegal when referring to an open ³ ³ file. ³ ³ GW-Basic and the standard MS-DOS version of ³ ³ BASIC-86 do not allow NAME to refer to open files. ³ ³ ³ ³ 3.3) Detection Of Identical File Names ³ ³ IBM Basic does not detect identical file names ³ ³ when the only difference in the name is the case ³ ³ of the alphabetic characters comprising the file ³ ³ name. This problem prevents IBM Basic from ³ ³ detecting that a file in an OPEN statement has ³ ³ already been opened. ³ ³ GW-Basic and the standard MS-DOS version of ³ ³ BASIC-86 are able to detect this user error. ³ ³ ³ ³ 3.4) Interruptability Of Input From The Keyboard ³ ³ Variable length input (INPUT n,var...) from ³ ³ the keyboard is not interruptable using the break ³ ³ key. The program: ³ ³ 10 OPEN "KYBD:" FOR INPUT AS 1 ³ ³ 20 INPUT #1,A$ ³ ³ 30 GOTO 20 ³ ³ will read break as a character (the program is ³ ³ virtually uninterruptable). This problem is fixed ³ ³ in GW-Basic. ³ ³ ³ ³ 3.5) Communications ³ ³ 1) End Of File. IBM-PC Basic returns EOF true ³ ³ whenever the input buffer is empty. GW-Basic ³ ³ returns EOF true only when file was opened in ³ ³ non binary mode, and CTL-Z has been received. ³ ³ Once EOF is true, it remains true until the ³ ³ file is closed. This is more analogous to the ³ ³ way EOF works on other devices. ³ ³ 2) Default Data Bits. IBM Basic documentation ³ ³ states that the default bit count for ³ ³ communications is 7. The commas in the ³ ³ statement: ³ ³ OPEN "COM1:,,," ³ ³ cause 7 bit mode to be invoked. However, if ³ ³ parity or speed are specified, the default data ³ ³ bit count is set to 8. GW-Basic defaults to 7 ³ ³ data bits. ³ ³ ³ ³ 3.6) Graphics ³ ³ 1) POINT. The IBM BASIC POINT function does not ³ ³ detect that certain coordinates are not on the ³ ³ screen and therefore are not legal. ³ ³ 2) GET and PUT. The array format and speed ³ ³ capability of these statements is supportable ³ ³ by GW-Basic. However, the operation of these ³ ³ commands is highly dependent on hardware design ³ ³ and the implementation of OEM specific ³ ³ routines. ³ ³ ³ ³ 3.7) Screen Editor ³ ³ 1) The IBM Screen Editor returns a zero to input$ ³ ³ function when a null function key is depressed. ³ ³ GW-Basic Screen Editor returns no key code to ³ ³ INPUT$ for null function keys. ³ ³ 2) The IBM Screen Editor terminates function key ³ ³ expansion when a key code greater than &H7f is ³ ³ encountered. The high bit of this key code is ³ ³ removed. GW-Basic allows codes greater than ³ ³ &H7f. In late ROMs, the IBM Screen Editor will ³ ³ not remove the high order bit from codes ³ ³ returned by function key expansion. ³ ³ ³ ³ 3.8) Trailing Blanks ³ ³ The following BASIC program demonstrates a problem ³ ³ in IBM Basic: ³ ³ 10 OPEN "JUNK FOR OUTPUT AS #1 ³ ³ 20 PRINT #1,"ABC " ³ ³ 30 CLOSE #1 ³ ³ 40 OPEN "JUNK" FOR INPUT AS #1 ³ ³ 50 INPUT A$ ³ ³ 60 PRINT LEN(A$) ³ ³ 70 CLOSE #1 ³ ³ The IBM Basic result of the print statement in ³ ³ line 60 is 13. The trailing blanks have not been ³ ³ removed. GW-Basic removes these trailing blanks as ³ ³ specified by the ANSI Standard. ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ 4) RS232 COMMUNICATIONS ³ ³ ³ ³ Previous releases of GW-Basic were incompatable with ³ ³ IBM-PC Basic communications in the following areas: ³ ³ 1) When a com file was opened with default ³ ³ parameters and closed, a CONTROL-Z (1A hex) was ³ ³ sent to let the other end of the RS-232 ³ ³ protocol know that end-of-file had been ³ ³ reached. This is not done in IBM-PC BASIC. ³ ³ 2) Under GW-Basic if a COM device was opened with ³ ³ the BIN option, EOF always returned false. In ³ ³ ASCII mode, EOF returned false until it ³ ³ received a CONTROL-Z, after which time it ³ ³ always returned true. ³ ³ These changes made EOF behave in a device independent ³ ³ manner. For example, a program which was written to ³ ³ read sequentially through a disk file, stopping when ³ ³ EOF was true, can now be used to read a COM file. For ³ ³ another example, GW-Basic can load "COM1:" and terminate ³ ³ when the load is finished if the user on the other end ³ ³ of the RS232 line types SAVE "COM1:",A. ³ ³ ³ ³ The number of application programs which have been ³ ³ written to use IBM-PC COM cannot be ignored. The ³ ³ following change in GW-Basic is intended to provide ³ ³ compatability with IBM-PC Basic while retaining the ³ ³ features added to GW-Basic. ³ ³ NOTE: This change is isolated to version independent ³ ³ code and has no effect on OEM written routines. ³ ³ ³ ³ COM files can be opened in one of the following ways: ³ ³ ³ ³ 1) With the ASC option ³ ³ In this mode, EOF is always false until a CTL-Z ³ ³ is received. When a file is opened for OUTPUT ³ ³ or RANDOM, a CTL-Z is sent when the file is ³ ³ closed. ³ ³ ³ ³ 2) With the BIN option ³ ³ In this "raw" mode, Basic performs no filtering ³ ³ of data. This includes forcing carriage return ³ ³ when line width is exceeded. This option ³ ³ overrides the LF option. EOF has the same ³ ³ meaning as it does in IBM-PC Basic. EOF is TRUE ³ ³ if no data exists in the input buffer. ³ ³ ³ ³ 3) With neither the BIN nor the ASC options. ³ ³ This mode is compatible with IBM-PC Basic. No ³ ³ CTL-Z is sent when the file is closed. EOF is ³ ³ TRUE if no data exists in the input buffer. ³ ³ ³ ³ BSAVE, BLOAD force the mode to BINARY. This insures ³ ³ BASIC will not force any Carriage Returns if the device ³ ³ is not 255 (infinite). ³ ³ ³ ³ SAVE "COMn:...",A forces the mode to ASCII. ³ ³ ³ ³ LOAD 'COMn:..." forces the mode to ASCII if the first ³ ³ character received is less than 80 hex, indicating an ³ ³ ASCII file is being loaded. This ensures that ASCII ³ ³ LOADs will terminate. ³ ³ ³ ³ COM file syntax: ³ ³ "COMn: [speed] [,parity] [,data] [,stop] [,RS] ³ ³ [,CS[n]] [DS[n]] [,CD[n]] [,LF] [,ASC] [,BIN]" ³ ³ Where: ³ ³ SPEED baud rate in bits per second ³ ³ PARITY N, E, 0 (none, even, odd) ³ ³ DATA 5,6,7,8 bits per byte ³ ³ STOP 1, 1.5, 2 stop bits ³ ³ Default for baud greater than 110 is 1 ³ ³ Default for 110 baud or lower & 5 data bits ³ ³ is 1.5 ³ ³ Default for 110 baud or lower & 6-8 data bits ³ ³ is 2 ³ ³ RS Suppress RTS (Request To Send) ³ ³ CS[n] Controls CTS (Clear To Send) ³ ³ DS[n] Controls DSR (Data Set Ready) ³ ³ CD[n] Controls CD (Carrier Detect) ³ ³ This is also referred to as RLSD ³ ³ (Receive line Signal Detect) ³ ³ LF Send a Line Feed character (X'OA') ³ ³ following a Carriage Return (X'OD') ³ ³ ASC Open COM file in ASCII mode ³ ³ BIN Open COM file in BINARY mode ³ ³ ³ ³ The RTS (Request To Send) line is turned on when you ³ ³ execute an OPEN "COM..." statement unless you include ³ ³ the RS option. ³ ³ If CD is omitted, it defaults to CSO ³ ³ If DS is omitted, it defaults to DS1000 ³ ³ If CS is omitted, it defaults to CS1000 ³ ³ If RS is specified and CS is omitted, then CS defaults ³ ³ to 0. ³ ³ ³ ³ Normally I/O statements to a communication file will ³ ³ fail if the CTS (Clear To Send) or DSR (Data Set Ready) ³ ³ lines are not cabled. The CS and DS options allow you ³ ³ to avoid this problem by ignoring these lines. If the ³ ³ [n] argument is included, it specifies the number of ³ ³ milliseconds to wait for the signal before returning a ³ ³ "Device Timeout" error. ³ ³ ³ ³ If the argument [n] in the CS, DS, and CD options is ³ ³ omitted, or equal to 0, then that line's status is not ³ ³ checked at all. ³ ³ ³ ³ NOTE: The speed, parity, data, and stop parameters are ³ ³ positional, but RS, CS< DS, and CD may appear in any ³ ³ order after STOP. ³ ³ ³ ³ When included in the parameter list, LF will cause a ³ ³ Line Feed to be sent after a Carriage Return. ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ